連字是一種多對一的字符轉換關係,通常也是最常被使用者注意到的特性之一。
如昨天所介紹的,在使用活字的年代裡,任兩個字符並列時,如果兩者之間的間距太過「ㄌㄤ」,會進行 kerning 的處理,讓字符本身超出活字的大小。
不過,即使已經調整過 kerning,有些字符對並列的時候,還是會有股不協調的感覺,設計師就會另外設計新的字模來取代這兩個活字——連字。
以拉丁字母來說,最常見的就是襯線字體的 f
在遇到另一個 f
、或是遇到 i
時,即使把兩邊的留白都調為負數,仍然會看起來怪怪的,上面的垂頭會有沾黏的感覺,此時就會需要額外製作 f_f
或是 f_i
字符。
此時,渲染引擎會調用 OpenType 裡的 liga feature,讓 f
與 i
的字符「替換」成「f_i
」。這個轉換只會改變「選染出來的字符外觀」,在記憶體裡面還是儲存著 f
與 i
,因此,在搜尋與比對的時候,依舊可以找到 f
與 i
。
總而言之,liga 只會改變渲染的結果,並不會改變文本的內容。
為了使排版更美觀,歐文字型幾乎都會製作 liga 的字符,而在大多數的文書軟體與瀏覽器中,標準連字預設都是開啟的。但如果想要手動調用的話,還是可以透過以下 css 啟用:
.class {
font-variant-ligatures: common-ligatures;
-moz-font-feature-settings: "liga", "clig";
-webkit-font-feature-settings: "liga", "clig";
font-feature-settings: "liga", "clig";
}
那麼中文呢?和歐文不同的是,漢字的可組合性在民間創造了諸如「招財進寶」、「孔孟好學」、「日進斗金」等「合文」——其實也能算是一種連字,只是有時候我們更常把他們當成是一個符號來看,畢竟我們還是習慣看到「招財進寶」四個字,但如果你想讓這些字以連字的方式實現,可以嘗試將他們設定成 dlig,也就是接下來要介紹的可選連字。
選擇性連字是指那些非必要的、額外用來增加裝飾感、或是讓使用者自行決定是否使用的連字。
較著名的 dlig 如 c_k
、c_t
、s_t
等字符對。這些字符對的歷史其實已經相當悠久,當時的設計師想要刻意模仿沾水筆的書寫,而將兩個字符加上連筆。不過,如果不熟悉傳統歐文書法的人可能會「誤判」這些連字,在某種程度上造成閱讀的困難,因此他們通常都是「可選」的,要使用的話必須要考慮目標受眾。
此外,如果你有設計上的特別需求,也可以設計自己的 dlig,像是上面提到的「招財進寶」合文等。而大多數的瀏覽器和文書軟體都將 dlig 預設為關閉,需要使用的話必須額外開啟:
.class {
font-variant-ligatures: discretionary-ligatures;
-moz-font-feature-settings: "dlig";
-webkit-font-feature-settings: "dlig";
font-feature-settings: "dlig";
}
歷史性連字主要是用來紀錄古籍或經典裡面的連字字符。如果想讓設計的字型更有復古的感覺,可以嘗試設計 hlig。
舉例來說,s
這個拉丁字母在八世紀盛行於歐洲的卡洛林小草書體裡(Carolingian minuscule),其實也可以長成ſ
的,因為他的筆畫看起來很長,所以又稱 long s(與之對比,現代的稱作 short s),通常用在詞首以及詞中,不置於結尾。
雖然後來的拉丁文字已經不再使用 ſ
,僅留下 s
的形式,但 ſz
的草寫在日耳曼地區演變成 ß
(Eszett) ,成為現今的德國使用的標準德文字母之一(不過在瑞士與列支敦士登,瑞士標準德文並不使用 ß
,而是直接拼成 ss
)。
和 dlig 一樣,大多數的瀏覽器和軟體都預設 hlig 為關閉,需要的話得額外啟用才行:
.class {
font-variant-ligatures: historical-ligatures;
-moz-font-feature-settings: 'hlig';
-webkit-font-feature-settings: 'hlig';
font-feature-settings: 'hlig' on;
}